#include "pagineBL.h"
#include <p33FJ256GP710.h>
int main(){
	int16_t bufferTest1[512]; //8 righe di 64 record = 512 locazioni
	int16_t bufferTest2[512];
	uint32_t bufferTest3[512];
	uint32_t bufferTest4[512];
	int16_t risultato;
	int itera,testEQ;
	//setta Leds
	AD1PCFGH|=0x00C0; //setta come uscite digitali i pin RA7 (AN23) e RA6 (AN22)
	TRISA=0;
	PORTA=0;
	//inizializza array
	for (itera=0;itera<512;itera++){
		bufferTest1[itera]=0;
		bufferTest2[itera]=0;
		bufferTest3[itera]=0;
		bufferTest4[itera]=0;
	}
	PORTA|=0x0001;
	bufferTest1[0]=36;
	bufferTest1[5]=-36;
	bufferTest3[20]=11259375;
	bufferTest3[100]=11259372;
	//la pagina di indice 100 ha come indirizzo 0x19000
	risultato=pageClean(0x01,0x9000);
	PORTA|=0X0002;
	if (risultato==FLASH_ERROR)
		while(1){
			;// trap clean error
		}//chiude while test clean
	risultato=pageDataWrite(0x01,0x9000,bufferTest1);
	PORTA|=0X0004;
	if (risultato==FLASH_ERROR)
			while(1){
				;// trap write error
			}//chiude while test clean
	pageDataRead(0x01,0x9000,bufferTest2);
	PORTA|=0X0008;
	testEQ=0;
	for (itera=0;itera<512;itera++)
		if (bufferTest1[itera]!=bufferTest2[itera])
			testEQ++;
	if (testEQ==0)
		PORTA|=0x0010;
	risultato=pageClean(0x01,0x9000);
	if (risultato==FLASH_ERROR)
		PORTA=0;
	risultato=pageInstrWrite(0x01,0x9000,bufferTest3);
	PORTA|=0X0020;
	pageInstrRead(0x01,0x9000,bufferTest4);
	PORTA|=0X0040;
	testEQ=0;
	for (itera=0;itera<512;itera++)
		if (bufferTest3[itera]!=bufferTest4[itera])
				testEQ++;
	if (testEQ==0)
		PORTA|=0x0080;
	while(1)
	{
		; //esamina con comodo nel jtag i due array!
	}//chiude while lettura
} //chiude main
